package com.probiz.estore.catalog.service;

import java.util.List;
import java.util.Map;

import com.probiz.estore.catalog.model.GiftCategoryFullyModel;
import com.probiz.estore.common.model.catalog.GiftCategory;

/**
 * Manager interface for GiftCategory, responsible for business processing, and communicate between web and persistence layer.
 *
 */
public interface GiftCategoryManager extends BaseCategoryManager<GiftCategory> {
	/**
	 * 获取指定目录编码的目录
	 * 
	 * @param categoryCode
	 *            目录编码
	 * @return 包含该目录编码的目录实体
	 */
	public GiftCategory getCategoryByCode(String categoryCode);

	/**
	 * 完全删除方法
	 * 
	 * @param entity
	 *            要删除的礼品目录实体
	 * @return 返回信息
	 */
	public Map<String, Object> deleteFully(GiftCategory entity);

	/**
	 * 完全保存方法
	 * 
	 * @param giftCategoryFullyModel
	 *            自定义的完整gift model
	 * @return 返回信息
	 */
	public Map<String, Object> saveFully(
			GiftCategoryFullyModel giftCategoryFullyModel);

	/* =========================start:前台自定义方法=========================================== */
	/**
	 * 根据前台uri获得目录id
	 * 
	 * @param uri
	 *            前台uri
	 * @return 目录id
	 */
	public Integer getCategoryIdByUri(String uri);

	/**
	 * 根据目录id获得前台uri
	 * 
	 * @param categoryId
	 *            目录id
	 * @return 前台uri
	 */
	public String getUriByCategoryId(Integer categoryId);

	/**
	 * 获取导航目录，即获得上级目录和自身目录，不包括根目录
	 * 
	 * @param categoryId
	 *            目录id
	 * @return 导航目录。例如 诺基亚的导航目录是[通讯设备，手机]
	 */
	public List<GiftCategory> getNavigationCategories(Integer categoryId);
	/* =========================end:前台自定义方法=========================================== */
}
